namespace mgp.ads {

    export interface ICanHideAd {
        /** 显示广告 */
        show();
        /** 隐藏广告 */
        hide();
        /** 销毁广告 */
        destroy();
    }
    export interface ICanLoadAd {
        /** 显示广告 */
        show();
        /** 加载广告 */
        load();
        /** 销毁广告 */
        destroy();
    }
    export interface IBannerAd extends ICanHideAd {
        /** 创建广告 */
        create(obj: IBannerAdObj): any;
    }

    /** wx的格子广告 */
    export interface IGridAd extends ICanHideAd {
        /** 创建广告 */
        create(obj: IGridAdObj): any;
    }

    export interface IInterstitialAd extends ICanLoadAd {
        /** 创建广告 */
        create(obj: IBaseAdObj): any;
    }

    export interface IRewardedVideoAd extends ICanLoadAd {
        /** 创建广告 */
        create(obj: IVideoAdObj): any;
    }

    /** qq的广告盒子 */
    export interface IAppBoxAd extends ICanLoadAd {
        /** 创建广告 */
        create(obj: IBaseAdObj): any;
    }

    /** qq的积木广告 */
    export interface IBlockAd extends ICanHideAd {
        /** 创建广告 */
        create(obj: IBaseAdObj): any;
    }

    export interface INativeAd {
        /** 发送显示广告 */
        reportAdShow();
        /** 发送点击广告 */
        reportAdClick();
        /** 加载广告 */
        load();
        /** 销毁广告 */
        destroy();
        /** 创建广告 */
        create(obj: IBaseAdObj): any;
    }

    export interface IAd {

        banner: IBannerAd;
        video: IRewardedVideoAd;
        interstitial: IInterstitialAd;

        native?: INativeAd;// ov的原生广告
        appBox?: IAppBoxAd;// qq的广告盒子
        grid?: IGridAd;// wx的格子广告
        block?: IBlockAd;// qq的积木广告

        init();
    }
}